import 手势检测模块 as detect
import 手势动作模块_QQ飞车_单手模式_开掌版 as action
# import 手势动作模块 as action
import cv2
import time
# 设置检测的信息，设置maxHand（最大检测手的个数为1）
detector = detect.HandDetect(maxHands=1)
# 获取手的动作对象
actuator = action.HandAction()
# 获取摄像头
capture = cv2.VideoCapture(0)
cTime = 0
nTime = 0
while True:
    flag, img = capture.read()
    img = cv2.flip(img, 1)
    allHands,img = detector.findHandsStatus(img)
    # 是否存在手
    if allHands:
        # 取得第一只手的信息
        lmList0 = allHands[0]["lmList"]
        handType = allHands[0]["type"]
        # 做出动作
        actuator.action(handType,lmList0)
        # # 是否存在两只手
        # if(len(allHands) > 1):
        #  取得第二只手的信息
        #     lmList1 = allHands[1]["lmList"]
        #     handType = allHands[1]["type"]
        #     # 做出动作
        #     actuator.action(handType, lmList1)
    # 计算FPS
    nTime = time.time()
    fps = 1 / (nTime - cTime)
    cTime = nTime
    # 为当前帧添加fps标识
    cv2.putText(img, f"FPS:{int(fps)}", (20, 70), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 255), 3)
    cv2.imshow("img", img)
    if cv2.waitKey(5) & 0xff == ord('q'):
        break
    if cv2.getWindowProperty('img', 0) == -1:  # 当窗口关闭时为-1，显示时为0
        break
capture.release()
